package com.zhentao.dto;

import lombok.Data;

import java.util.List;

/**
 * 逆地理编码响应DTO
 */
@Data
public class RegeocodeResponse {
    
    /**
     * 状态码
     */
    private String status;
    
    /**
     * 状态信息
     */
    private String info;
    
    /**
     * 逆地理编码结果
     */
    private RegeocodeResult regeocode;
    
    /**
     * 逆地理编码结果详情
     */
    @Data
    public static class RegeocodeResult {
        
        /**
         * 地址
         */
        private String formattedAddress;
        
        /**
         * 地址组件
         */
        private AddressComponent addressComponent;
        
        /**
         * 附近POI
         */
        private List<Poi> pois;
        
        /**
         * 道路信息
         */
        private List<Road> roads;
        
        /**
         * 道路交叉口
         */
        private List<RoadIntersection> roadInters;
    }
    
    /**
     * 地址组件
     */
    @Data
    public static class AddressComponent {
        
        /**
         * 国家
         */
        private String country;
        
        /**
         * 省份
         */
        private String province;
        
        /**
         * 城市
         */
        private String city;
        
        /**
         * 区县
         */
        private String district;
        
        /**
         * 街道
         */
        private String street;
        
        /**
         * 门牌号
         */
        private String number;
    }
    
    /**
     * POI信息
     */
    @Data
    public static class Poi {
        
        /**
         * POI名称
         */
        private String name;
        
        /**
         * POI类型
         */
        private String type;
        
        /**
         * 距离
         */
        private String distance;
        
        /**
         * 方向
         */
        private String direction;
    }
    
    /**
     * 道路信息
     */
    @Data
    public static class Road {
        
        /**
         * 道路名称
         */
        private String name;
        
        /**
         * 距离
         */
        private String distance;
        
        /**
         * 方向
         */
        private String direction;
    }
    
    /**
     * 道路交叉口
     */
    @Data
    public static class RoadIntersection {
        
        /**
         * 交叉口名称
         */
        private String name;
        
        /**
         * 距离
         */
        private String distance;
        
        /**
         * 方向
         */
        private String direction;
    }
}
